package cn.wen.yaling.xo.service;

import cn.wen.yaling.commons.utils.ResultEntity;
import cn.wen.yaling.commons.vo.*;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.wen.yaling.commons.utils.PageUtils;
import cn.wen.yaling.commons.entity.TagEntity;

import java.util.List;
import java.util.Map;

/**
 * 
 *
 * @author FY
 * @email 932043654@qq.com
 * @date 2022-08-13 02:07:37
 */
public interface TagService extends IService<TagEntity> {


    PageUtils queryPage(Map<String, Object> params);

    /**
     * 通过标签Id获取当前标签下的所有文章
     * @param tagId
     * @return
     */
    List<ArticleListVO> getTagArticleList(Integer tagId);

    /**
     * 获取当前所有激活的标签列表
     * @return
     */
    List<TagVO> getAllTagList();

    /**
     * 获取所有标签中的博客数量 和 标签名称 ID
     * @return
     */
    List<Map<String, Object>> getBlogCountByTag();

    /**
     * 获取非删除状态的标签列表
     * @return
     */
    List<TagEntity> getTagList();

    /**
     * 模糊查询
     * @param tagName
     * @return
     */
    List<TagEntity> getTagByTagName(String tagName);

    /**
     * 更新当前标签的状态
     * @param tagId
     * @param status
     * @return
     */
    ResultEntity updateTagStatus(Integer tagId, Integer status);

    /**
     * 批量删除
     * @param tagIds
     * @return
     */
    ResultEntity deleteTagByIds(Integer[] tagIds);

    /**
     * 修改标签
     * @param tag
     * @return
     */
    ResultEntity updateTag(TagUpdateVO tag);

    /**
     * 添加标签
     * @param tag
     * @return
     */
    ResultEntity addTag(TagAddVO tag);
}

